package com.zte.sys.modules.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zte.sys.modules.dao.IMModuleDao;
import com.zte.sys.modules.model.MModule;
import com.zte.sys.modules.model.MModuleCondition;
import com.zte.sys.modules.service.IMModuleService;
import com.zte.sys.position.model.Job;
import com.zte.util.PageModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class MModuleService implements IMModuleService {

    @Autowired
    private IMModuleDao moduleDao;

    /**
     * 模块分页条件查询
     * @param conn
     * @param pageModel
     * @return
     */
    @Override
    public PageModel<MModule> queryMModulePageByCondition(MModuleCondition conn, PageModel<MModule> pageModel) {
        if (conn.getModuleRname().equals("null")){
            conn.setModuleRname("");
        }
        int pageNum = pageModel.getPageNum();
        pageNum = pageNum<=0?1:pageNum;
        int pageSize = 3;
        PageHelper.startPage(pageNum,pageSize);
        List<MModule> mModules = moduleDao.queryMModuleListByCondition(conn);
        PageInfo<MModule> info = new PageInfo<MModule>(mModules);

        pageModel.setPageNum(info.getPageNum());
        pageModel.setPageSize(info.getPageSize());
        pageModel.setTotalPage(info.getPages());
        pageModel.setTotalCount((int)info.getTotal());
        pageModel.setData(new ArrayList<MModule>(info.getList()));
        return pageModel;
    }

    /**
     * 模块详情
     * @param moduleId
     * @return
     */
    @Override
    public MModule queryMModuleByMModuleId(String moduleId) {
        return moduleDao.queryMModuleByMModuleId(moduleId);
    }

    /**
     * 父模块查询
     * @param modulePid
     * @return
     */
    @Override
    public List<MModule> queryMModuleByMModulePid(String modulePid) {
        return moduleDao.queryMModuleByMModulePid(modulePid);
    }


    /**
     * 添加模块
     * @param mModule
     * @return
     */
    @Override
    public int addMModule(MModule mModule) {
        mModule.setModuleState("1");
        return moduleDao.addMModule(mModule);
    }

    /**
     * 修改模块
     * @param mModule
     * @return
     */
    @Override
    public int updateMModule(MModule mModule) {
        return moduleDao.updateMModule(mModule);
    }

    /**
     * 禁用恢复修改
     * @param mModule
     * @return
     */
    @Override
    public int updateMModuleState(MModule mModule) {
        if(mModule.getModuleState().equals("2")){
            mModule.setModuleState("1");
        }else {
            mModule.setModuleState("2");
        }
        return moduleDao.updateMModuleState(mModule);
    }
}
